package com.brillilab.service.core.experiments;

import com.brillilab.domain.po.experiments.ExperimentStepReagent;
import com.brillilab.domain.vo.experiments.ExperimentStepReagentVo;

import java.util.List;

/**
 * 步骤的试剂
 * @author WuMenghao
 * @time   2019/04/22
 */
public interface IExperimentStepReagentService {

    List<ExperimentStepReagent> insertBatch(List<ExperimentStepReagent> experimentStepReagents);

    //试剂
    List<ExperimentStepReagent> selectKitReagentList(Long experimentId,Long phaseId,Long stepId);

    //样品
    List<ExperimentStepReagent> selectSampleReagentList(Long experimentId,Long phaseId,Long stepId);

    //全部vo
    List<ExperimentStepReagentVo> selectExperimentStepReagentVoList(Long experimentId,Long phaseId,Long stepId);

    //全部
    List<ExperimentStepReagent> selectExperimentStepReagentList(Long experimentId,Long phaseId,Long stepId);

    ExperimentStepReagent selectById(Long stepReagentId);

    int updateBatch(List<ExperimentStepReagent> reagentUpdate);

    List<ExperimentStepReagent> selectList(List<Long> stepReagentIds);

    //****    XuZue start   ****//

    void updateById(ExperimentStepReagent reagent);

    boolean deleteById(Long id);

    int selectCount(Long experimentId,Long phaseId,Long stepId);
    
    List<ExperimentStepReagent> selectStepReagentList(Long experimentId);
    //****    end   ****//

	void deleteByIds(List<Long> idList);

    List<ExperimentStepReagent> selectByUuidAndStepId(String uuid,Long stepId,Integer type);

    boolean deleteByExperimentId(Long experimentId);

    List<ExperimentStepReagent> selectByReagentIdAndExperimentId(Long reagentId,Long experimentId);

}
